<template>
    <div class="login_comtain">
        <div class="login_box">
            <!--头像区域-->
            <div class="avatar_box">
                <img src="../assets/img/logo.png" alt="">
            </div>
           <!--登录表单区域-->
            <el-form ref="LoginFormRef" :model="LoginForm" :rules="LoginFormRules" class="login_forms">
                    <!--用户名-->
                    <el-form-item label="账号" prop="username">
                    <el-input v-model="LoginForm.username" prefix-icon="iconfont icon-user"></el-input>
                    </el-form-item>
                    <!--密码-->
                    <el-form-item label="密码" prop="password">
                    <el-input v-model="LoginForm.password" prefix-icon="iconfont icon-3702mima"
                    type="password"></el-input>
                    </el-form-item>
                    <!--按钮-->
                    <el-form-item class="btns" >
                        <el-button type="primary" @click="Login">登录</el-button>
                        <el-button type="info" @click="resetLoginForm">重置</el-button>
                    </el-form-item>
            </el-form>
        </div>
    </div>
</template>
<script>
export default {
  name: 'Login',
  data(){
    return{
    //这是登录表单的数据绑定对象
     LoginForm:{
        username:'admin',
        password:'123456'
     },
     //这是表单的验证规则对象
     LoginFormRules:{
        //验证用户名是否合法
        username:[{ required: true, message: '请输入账号', trigger: 'blur' },
                  { min: 3, max: 10, message: '长度在 3 到 10 个字符', trigger: 'blur' }
                ],
        //验证密码是否合法
        password:[
            { required: true, message: '请输入密码', trigger: 'blur' },
            { min: 6, max: 10, message: '长度在 6 到 10 个字符', trigger: 'blur' }
        ]
     }
    };
},
   methods:{
    //点击重置按钮，重置登录表单
    resetLoginForm(){
        this.$refs.LoginFormRef.resetFields();
    },
    Login(){
        //验证提醒规则错误传到后端
        this.$refs.LoginFormRef.validate(async valid=>{
            if(!valid)return;
            const {data:res}=await this.$http.post('login',this.LoginForm)
            if(res.meta.status!=200)return this.$message.error('账号或密码错误，登录失败');
            this.$message.success("登录成功！")
            //1.将登录成功之后的token，保存到客户端的sessionStforage中
               // 1.1项目中除了登录之外的其他API接口，必须在登录后才能访问
               //1.2token只应在当前网站打开期间生效，所以将token保存在sessionstorage中     
               window.sessionStorage.setItem("token",res.data.token);
            //2.通过编程式导航跳转到后台主页，路由地址是/home
               this.$router.push('/home')
       
        })

        }
   }
}
</script>

<style lang="less" scoped>
.login_comtain{
  background-color: #2b4b6b;
  height: 100%;
}
.login_box{
    width: 650px;
    height: 400px;
    background-color: #fff;
    border-radius: 3px;
    position: absolute;
    left:50%;
    top:50%;
    transform: translate(-50%,-50%);
    .avatar_box{
        height: 130px;
        width: 130px;
        border-radius: 50%;
        padding: 10px;
        box-shadow: 0 0 10px;
        position: absolute;
        left: 50%;
        transform: translate(-50%,-50%);
        background-color:bisque;
        img{
            width: 100%;
            height: 100%;
            border-radius: 50%;
            background-color: bisque;
        }  
    }
    
}
.login_forms{
    position: absolute;
    bottom: 6%;
    width: 60%;
    padding: 0 20px;
    box-sizing: border-box;
    margin-left: 20%;
}
.btns{
    display: flex;
    justify-content: flex-end;
}
</style>
